tokfandomcom-20200215-history
Raspberry Pi
The Raspberry Pi is a series of small s developed in the by the to promote teaching of basic in schools and in . The original model became far more popular than anticipated, selling outside its for uses such as . It does not include peripherals (such as s and ) and s. However, some accessories have been included in several official and unofficial bundles. The organisation behind the Raspberry Pi consists of two arms. The first two models were developed by the Raspberry Pi Foundation. After the Pi Model B was released, the Foundation set up Raspberry Pi Trading, with as CEO, to develop the third model, the B+. Raspberry Pi Trading is responsible for developing the technology while the Foundation is an educational charity to promote the teaching of basic computer science in schools and in developing countries. According to the Raspberry Pi Foundation, more than 5 million Raspberry Pis were sold by February 2015, making it the best-selling . By November 2016 they had sold 11 million units, and 12.5m by March 2017, making it the third best-selling "general purpose computer". In July 2017, sales reached nearly 15 million. In March 2018, sales reached 19 million. Most Pis are made in a factory in , Wales. Some are made in China and Japan. Generations of released models Several generations of Raspberry Pis have been released. All models feature a (SoC) with an integrated -compatible (CPU) and (GPU). Processor speed ranges from 700 MHz to 1.4 GHz for the Pi 3 Model B+ or 1.5GHz for the Pi 4; on-board memory ranges from 256 MB to 1 GB with up to 4 GB available on the Pi 4 (RAM). (SD) cards in MicroSDHC form factor (SDHC on early models) are used to store the operating system and program memory. The boards have one to four ports. For video output, and are supported, with a standard 3.5 mm jack for audio output. Lower-level output is provided by a number of pins, which support common protocols like . The B-models have an port and the Pi 3 and Pi Zero W have on-board and . Prices range from US$5 to $55. The first generation (Raspberry Pi 1 Model B) was released in February 2012, followed by the simpler and cheaper Model A. In 2014, the Foundation released a board with an improved design, Raspberry Pi 1 Model B+. These boards are approximately credit-card sized and represent the standard mainline form-factor. Improved A+ and B+ models were released a year later. A was released in April 2014 for . The Raspberry Pi 2, which added more RAM, was released in February 2015. A Raspberry Pi Zero with smaller size and reduced (I/O) and (GPIO) capabilities was released in November 2015 for US$5. By 2017, it became the newest mainline Raspberry Pi. On 28 February 2017, the Raspberry Pi Zero W was launched, a version of the Zero with Wi-Fi and Bluetooth capabilities, for US$10. On 12 January 2018, the Raspberry Pi Zero WH was launched, a version of the Zero W with pre-soldered GPIO headers. Raspberry Pi 3 Model B was released in February 2016 with a 1.2 GHz 64-bit processor, on-board , and USB boot capabilities. On 2018 the Raspberry Pi 3 Model B+ was launched with a faster 1.4 GHz processor and a three-times faster (throughput limited to ca. 300 Mbit/s by the internal USB 2.0 connection) or 2.4 / 5 GHz Wi-Fi (100 Mbit/s). Other features are (PoE), and (an is no longer required). Raspberry Pi 4 Model B was released in June 2019 with a 1.5 GHz 64-bit quad core processor, on-board 802.11ac , , full (throughput not limited), two ports, two ports and dual monitor support ( ). The Pi 4 is also powered via a port, enabling additional power to be provided to downstream peripherals, when used with an appropriate PSU. Three sizes of onboard RAM are available: 1 GB (US$35), 2 GB (US$45), 4 GB (US$55). The Raspberry Pi 4 has a design flaw where third-party e-marked USB cables, such as those used on Apple Macbooks, incorrectly identify it and refuse to provide power. This is expected to be corrected in a future board revision. tested 14 different cables and found that 11 of them turned on and powered the Pi without issue. Hardware The Raspberry Pi hardware has evolved through several versions that feature variations in capacity and peripheral-device support. This block diagram describes Model B and B+; Model A, A+, and the Pi Zero are similar, but lack the and hub components. The Ethernet adapter is internally connected to an additional USB port. In Model A, A+, and the Pi Zero, the USB port is connected directly to the (SoC). On the Pi 1 Model B+ and later models the USB/Ethernet chip contains a five-port USB hub, of which four ports are available, while the Pi 1 Model B only provides two. On the Pi Zero, the USB port is also connected directly to the SoC, but it uses a (OTG) port. Unlike all other Pi models, the 40 pin GPIO connector is omitted on the Pi Zero with solderable through holes only in the pin locations. The Pi Zero WH remedies this. Processor processor.}} The BCM2835 SoC used in the first generation Raspberry Pi includes a 700 76JZF-S processor, IV (GPU), and RAM. It has a level 1 (L1) of 16 and a level 2 (L2) cache of 128 KB. The is used primarily by the GPU. The SoC is underneath the RAM chip, so only its edge is visible. The ARM1176JZ(F)-S is the same CPU used in the , although at a higher , and mated with a much faster GPU. The earlier V1.1 model of the Raspberry Pi 2 used a Broadcom BCM2836 SoC with a 900 MHz , processor, with 256 KB shared L2 cache. The Raspberry Pi 2 V1.2 was upgraded to a Broadcom BCM2837 SoC with a 1.2 GHz quad-core processor, the same SoC which is used on the Raspberry Pi 3, but (by default) to the same 900 MHz CPU clock speed as the V1.1. The BCM2836 SoC is no longer in production as of late 2016. The Raspberry Pi 3+ uses a Broadcom BCM2837B0 SoC with a 1.4 GHz 64-bit quad-core processor, with 512 KB shared L2 cache. The Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core processor. The Raspberry Pi Zero and Zero W use the same Broadcom BCM2835 SoC as the first generation Raspberry Pi, although now running at 1 GHz CPU clock speed. Performance While operating at 700 MHz by default, the first generation Raspberry Pi provided a real-world performance roughly equivalent to 0.041 . On the level the performance is similar to a 300 MHz of 1997–99. The GPU provides 1 /s or 1.5 Gtexel/s of graphics processing or 24 GFLOPS of general purpose computing performance. The graphical capabilities of the Raspberry Pi are roughly equivalent to the performance of the of 2001. Raspberry Pi 2 V1.1 included a quad-core CPU running at 900 MHz and 1 GB RAM. It was described as 4–6 times more powerful than its predecessor. The GPU was identical to the original. In parallelised benchmarks, the Raspberry Pi 2 V1.1 could be up to 14 times faster than a Raspberry Pi 1 Model B+. The Raspberry Pi 3, with a quad-core processor, is described as having ten times the performance of a Raspberry Pi 1. Benchmarks showed the Raspberry Pi 3 to be approximately 80% faster than the Raspberry Pi 2 in tasks. Overclocking Most Raspberry Pi could be to 800 MHz, and some to 1000 MHz. There are reports the Raspberry Pi 2 can be similarly overclocked, in extreme cases, even to 1500 MHz (discarding all safety features and over-voltage limitations). In the the overclocking options on can be done by a software command running "sudo raspi-config" without voiding the warranty. In those cases the Pi automatically shuts the overclocking down if the chip reaches , but it is possible to override automatic over-voltage and overclocking settings (voiding the warranty); an appropriately sized is needed to protect the chip from serious . Newer versions of the contain the option to choose between five overclock ("turbo") presets that when used, attempt to maximise the performance of the SoC without impairing the lifetime of the board. This is done by monitoring the core temperature of the chip and the , and dynamically adjusting and the . When the demand is low on the CPU or it is running too hot the performance is , but if the CPU has much to do and the chip's temperature is acceptable, performance is temporarily increased with clock speeds of up to 1 GHz, depending on the board version and on which of the turbo settings is used. The seven overclock presets are: * none; 700 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0 * modest; 800 MHz ARM, 250 MHz core, 400 MHz SDRAM, 0 overvolting, * medium; 900 MHz ARM, 250 MHz core, 450 MHz SDRAM, 2 overvolting, * high; 950 MHz ARM, 250 MHz core, 450 MHz SDRAM, 6 overvolting, * turbo; 1000 MHz ARM, 500 MHz core, 600 MHz SDRAM, 6 overvolting, * Pi 2; 1000 MHz ARM, 500 MHz core, 500 MHz SDRAM, 2 overvolting, * Pi 3; 1100 MHz ARM, 550 MHz core, 500 MHz SDRAM, 6 overvolting. In system information the CPU speed will appear as 1200 MHz. When idling, speed lowers to 600 MHz. In the highest (turbo) preset the SDRAM clock was originally 500 MHz, but this was later changed to 600 MHz because 500 MHz sometimes causes SD card corruption. Simultaneously in high mode the core clock speed was lowered from 450 to 250 MHz, and in medium mode from 333 to 250 MHz. The CPU on the first and second generation Raspberry Pi board did not require cooling, such as a heat sink or , even when overclocked, but the Raspberry Pi 3 may generate more heat when overclocked. RAM On the older beta Model B boards, 128 MB was allocated by default to the GPU, leaving 128 MB for the CPU. On the first 256 MB release Model B (and Model A), three different splits were possible. The default split was 192 MB (RAM for CPU), which should be sufficient for standalone 1080p video decoding, or for simple 3D, but probably not for both together. 224 MB was for Linux only, with only a 1080p , and was likely to fail for any video or 3D. 128 MB was for heavy 3D, possibly also with video decoding (e.g. Kodi). Comparatively the uses 128 MB for the Broadcom VideoCore IV. For the later Model B with 512 MB RAM, new standard memory split files (arm256_start.elf, arm384_start.elf, arm496_start.elf) were initially released for 256 MB, 384 MB and 496 MB CPU RAM (and 256 MB, 128 MB and 16 MB video RAM) respectively. But a week or so later the RPF released a new version of start.elf that could read a new entry in config.txt (gpu_mem=''xx'') and could dynamically assign an amount of RAM (from 16 to 256 MB in 8 MB steps) to the GPU, so the older method of memory splits became obsolete, and a single start.elf worked the same for 256 MB and 512 MB Raspberry Pis. The Raspberry Pi 2 and the Raspberry Pi 3 have 1 GB of RAM. The Raspberry Pi Zero and Zero W have 512 MB of RAM. The Raspberry Pi 4 has a choice of 1, 2 or 4 GB of RAM, set at time of manufacture. The Raspberry Pi 4 Model B Safety and User guide mentions "Raspberry Pi 4 Model B 1 GB, 2 GB, 4 GB + 8 GB variants" but the 8GB model was not available as of the 2019 launch. Networking The Model A, A+ and Pi Zero have no Ethernet circuitry and are commonly connected to a network using an external user-supplied USB Ethernet or adapter. On the the Ethernet port is provided by a built-in USB Ethernet adapter using the SMSC LAN9514 chip. The Raspberry Pi 3 and Pi Zero W (wireless) are equipped with 2.4 GHz WiFi and based on the Broadcom BCM43438 chip with no official support for but implemented through unofficial firmware patching and the Pi 3 also has a 10/100 Mbit/s Ethernet port. The Raspberry Pi 3B+ features dual-band , , and (limited to approximately 300 Mbit/s by the bus between it and the SoC). The Raspberry Pi 4 has full (throughput is not limited as it is not funnelled via the USB chip.) Special-purpose features The Pi Zero can be used as a USB device or "USB gadget", plugged into another computer via a USB port on another machine. It can be configured in multiple ways, for example to show up as a serial device or an ethernet device. Although originally requiring software patches, this was added into the mainline Raspbian distribution in May 2016. The Pi 3 can boot from USB, such as from a flash drive. Because of firmware limitations in other models, the Pi 2B v1.2, 3A+, 3B, 3B+, and 4B are the only boards that can do this. Peripherals Although often pre-configured to operate as a (without a monitor, keyboard, and mouse), the Raspberry Pi may also optionally be operated with any generic and . It may also be used with USB storage, USB to MIDI converters, and virtually any other device/component with USB capabilities, depending on the installed device drivers in the underlying operating system (many of which are included by default). Other peripherals can be attached through the various pins and connectors on the surface of the Raspberry Pi. Video The video controller can generate standard modern TV resolutions, such as HD and , and higher or lower monitor resolutions as well as older NTSC or PAL standard TV resolutions. As shipped (i.e., without custom overclocking) it can support the following resolutions: 640×350 ; 640×480 ; 800×600 ; 1024×768 ; 1280×720 ; 1280×768 variant; 1280×800 variant; 1280×1024 ; 1366×768 variant; 1400×1050 ; 1600×1200 ; 1680×1050 ; 1920×1080 ; 1920×1200 . Higher resolutions, up to 2048×1152, may work or even 3840×2160 at 15 Hz (too low a frame rate for convincing video). Note also that allowing the highest resolutions does not imply that the GPU can decode video formats at these resolutions; in fact, the Pis are known to not work reliably for (at those high resolutions), commonly used for very high resolutions (however, most common formats up to Full HD do work). Although the Raspberry Pi 3 does not have H.265 decoding hardware, the CPU is more powerful than its predecessors, potentially fast enough to allow the decoding of H.265-encoded videos in software. The GPU in the Raspberry Pi 3 runs at higher clock frequencies of 300 MHz or 400 MHz, compared to previous versions which ran at 250 MHz. The Raspberry Pis can also generate and signals, as used on old-style (CRT) TV screens and less-expensive monitors through standard connectors either RCA or 3.5 mm phono connector depending on model. The television signal standards supported are , , , and . Real-time clock None of the Raspberry Pi models have a built-in . When booting, the time is set either manually, or configured from a previously saved state at shutdown to provide relative consistency for the . The is used to update the system time when connected to a network. A real-time hardware clock with battery backup, such as the DS1307, may be added. Specifications * all interfaces are via 200-pin DDR2 connector. Connectors Pi Zero File:Raspberry Pi Zero - Location of connectors and ICs.svg | Location of connectors and main ICs Model A File:Raspberry_Pi_1A.svg | Location of connectors and main ICs on Raspberry Pi 1 Model A File:Drawing of Raspberry Pi model A+ rev1.1.svg | Location of connectors and main ICs on Raspberry Pi 1 Model A+ revision 1.1 Model B File:Drawing of Raspberry Pi model B rev2.svg | Location of connectors and main ICs on Raspberry Pi 1 Model B revision 1.2 File:Raspberry Pi B+ rev 1.2.svg | Location of connectors and main ICs on Raspberry Pi 1 Model B+ revision 1.2 and Raspberry Pi 2 File:RaspberryPi_3B.svg | Location of connectors and main ICs on Raspberry Pi 3 General purpose input-output (GPIO) Raspberry Pi 1 Models A+ and B+, Pi 2 Model B, Pi 3 Models A+, B and B+, Pi 4, and Pi Zero, Zero W, and Zero WH GPIO J8 have a 40-pin pinout. Raspberry Pi 1 Models A and B have only the first 26 pins. In the Pi Zero and Zero W the 40 GPIO pins are unpopulated, having the through-holes exposed for soldering instead. The Zero WH (Wireless + Header) has the header pins preinstalled. Model B rev. 2 also has a pad (called P5 on the board and P6 on the schematics) of 8 pins offering access to an additional 4 GPIO connections. These GPIO pins were freed when the four board version identification links present in revision 1.0 were removed. Models A and B provide GPIO access to the ACT status LED using GPIO 16. Models A+ and B+ provide GPIO access to the ACT status LED using GPIO 47, and the power status LED using GPIO 35. Accessories * Gertboard – A Raspberry Pi Foundation sanctioned device, designed for educational purposes, that expands the Raspberry Pi's GPIO pins to allow interface with and control of LEDs, switches, analog signals, sensors and other devices. It also includes an optional compatible controller to interface with the Pi. * Camera – On 14 May 2013, the foundation and the distributors RS Components & Premier Farnell/Element 14 launched the Raspberry Pi camera board alongside a firmware update to accommodate it. The camera board is shipped with a that plugs into the connector which is located between the Ethernet and HDMI ports. In Raspbian, the user must enable the use of the camera board by running Raspi-config and selecting the camera option. The camera module costs €20 in Europe (9 September 2013). It can produce , and video. The dimensions are . In May 2016, v2 of the camera came out, and is an 8 megapixel camera. * Infrared Camera – In October 2013, the foundation announced that they would begin producing a camera module without an infrared filter, called the Pi NoIR. * Official Display – On 8 September 2015, The foundation and the distributors RS Components & Premier Farnell/Element 14 launched the Raspberry Pi Touch Display * HAT (Hardware Attached on Top) expansion boards Together with the Model B+, inspired by the boards, the interface for HAT boards was devised by the Raspberry Pi Foundation. Each HAT board carries a small EEPROM (typically a CAT24C32WI-GT3) containing the relevant details of the board, so that the Raspberry Pi's OS is informed of the HAT, and the technical details of it, relevant to the OS using the HAT. Mechanical details of a HAT board, which uses the four mounting holes in their rectangular formation, are available online. Software Operating systems The Raspberry Pi Foundation provides , a Debian-based for download, as well as third-party , , , and specialised distributions. It promotes and as the main programming languages, with support for many other languages. The default is , while an unofficial is available. Many other operating systems can also run on the Raspberry Pi, including the formally verified microkernel, . Other third-party operating systems available via the official website include , , and specialised distributions for the media centre and classroom management. ;Other operating systems (not Linux-based) * Broadcom VCOS – Proprietary operating system which includes an abstraction layer designed to integrate with existing kernels, such as (which is used on the VideoCore4 processor), providing drivers and middleware for application development. In case of Raspberry Pi this includes an application to start the ARM processor(s) and provide the publicly documented API over a mailbox interface, serving as its firmware. An incomplete source of a port of VCOS is available as part of the reference graphics driver published by Broadcom. * Pi (a special cut down version RISC OS Pico, for 16 MB cards and larger for all models of Pi 1 & 2, has also been made available.) * * * (only on 64-bit platforms, such as Raspberry Pi 3) * and (in beta) * – a zero-price edition of offered by Microsoft that runs natively on the Raspberry Pi 2. * – an open source clone that has been compiled for the Raspberry Pi and several other ARM boards. Work on Pi 1 began in 2011, but only the Pi 2 will be supported. * – a portable microkernel-based multiserver operating system; has basic Raspberry Pi support since version 0.6.0 ;Other operating systems (Linux-based) * – an embedded version of the operating system designed for device development. * – a port of for processors. * * Server 12 SP2 * Server 12 SP3 (Commercial support) * * * * * for Raspberry Pi 2 and later * (a RHEL port) for Raspberry Pi 1 * – version 13.37 and later runs on the Raspberry Pi without modification. The 128–496 MB of available memory on the Raspberry Pi is at least twice the minimum requirement of 64 MB needed to run Slackware Linux on an ARM or i386 system. (Whereas the majority of Linux systems boot into a , Slackware's default user environment is the / .) The window manager running under the requires an additional 48 MB of RAM. * – a Debian-derived distro designed for digital forensics and penetration testing. * – a light Debian-derived distro with Xfce. * – designed for website and email self-hosting. * with Raspberry Pi 2 (due to use ARM Cortex-A7 CPU; Raspberry Pi 1 uses different ARMv6 architecture and Sailfish requires ARMv7.) * – a minimal operating system focused on providing a base system using and . Designed to run primarily in . * – a based on and , primarily designed for " who appreciate security, simplicity and resource efficiency". * – a Linux distribution which was designed and implemented from scratch, provides images based on musl or . * – supports Pi 2 and later since Fedora 25 (Pi 1 is supported by some unofficial derivatives, e.g. listed here.). Driver APIs : , and }} Raspberry Pi can use a IV GPU via a , which is loaded into the GPU at boot time from the , and additional software, that initially was . This part of the driver code was later released. However, much of the actual driver work is done using the closed source GPU code. Application software makes calls to closed source run-time libraries ( , or ), which in turn call an open source driver inside the Linux kernel, which then calls the closed source VideoCore IV GPU driver code. The of the kernel driver is specific for these closed libraries. Video applications use , }} use and }} use , which both in turn use . OpenMAX and EGL use the open source kernel driver in turn. Firmware The official firmware is a , that is . A minimal proof-of-concept open source firmware is also available, mainly aimed at initializing and starting the ARM cores as well as performing minimal startup that is required on the ARM side. It is also capable of booting a very minimal , with patches to remove the dependency on the mailbox interface being responsive. It is known to work on Raspberry Pi 1, 2 and 3, as well as some variants of Raspberry Pi Zero. While it is in a working state, it is not actively developed, with last significant commits made around mid-2017. Third party application software * – AstroPrint's wireless software can be run on the Pi 2. * – Released 3 January 2017, C/C++ interpreter Ch and Embedded Ch are released free for non-commercial use for Raspberry Pi, ChIDE is also included for the beginners to learn C/C++. * & the – These were released free as a standard part of the Raspbian NOOBS image in November 2013. , the version is Mathematica 11.3. Programs can be run either from a command line interface or from a . There are Wolfram Language functions for accessing connected devices. There is also a Wolfram Language desktop development kit allowing development for Raspberry Pi in Mathematica from desktop machines, including features from the loaded Mathematica version such as image processing and machine learning. * – Released 11 February 2013, a modified version that allows players to directly alter the world with computer code. * – Since 28 September 2016, Raspbian includes RealVNC's remote access server and viewer software. This includes a new capture technology which allows directly-rendered content (e.g. Minecraft, camera preview and omxplayer) as well as non-X11 applications to be viewed and controlled remotely. * – On 20 September 2013, Florida-based security vendor Entensys announced porting UserGate Web Filter to Raspberry Pi platform. * – On 13 December 2018, Valve released official Steam Link game streaming client for the Raspberry Pi 3 and 3 B+. Software development tools * – for programming an Arduino. * – for teaching programming to children and beginners. * – for teaching Java to beginners. * – Greenfoot teaches object orientation with Java. Create 'actors' which live in 'worlds' to build games, simulations, and other graphical programs. * – an interactive and cross-platform programming language/environment, that runs on the Pi 1 and later. IDEs for Julia, such as Juno, are available. See also Pi-specific Github repository JuliaBerry. * – a RAD IDE * – an educational RAD IDE descended from using English-like language to write event-handlers for WYSIWYG widgets runnable on desktop, mobile and Raspberry Pi platforms. * – a cross-platform integrated development environment (IDE) for Python. * – an IDE built for the electronic arts, new media art, and visual design communities with the purpose of teaching the fundamentals of computer programming in a visual context. * – a cross-platform teaching IDE using visual blocks that stack like Lego, originally developed by MIT's Life Long Kindergarten group. The Pi version is very heavily optimised for the limited computer resources available and is implemented in the Squeak Smalltalk system. The latest version compatible with The 2 B is 1.6. * Smalltalk – a full-scale open Smalltalk. * – an artificial intelligence framework developed by Google. The Raspberry Pi Foundation worked with Google to simplify the installation process through pre-built binaries. * – a Python IDE for beginners. * – a cross-platform development framework that supports mobile game and app development with the V-Play Game Engine, V-Play apps, and V-Play plugins. * – a cross-platform RAD tool that can create desktop, web and console apps for Pi 2 and Pi 3. * – a platform for hands-on integrated learning of computing, science, technology, engineering, and mathematics (C-STEM) with robotics. External links *Basic Assembly Instructions in the ARM Instruction Set *ARMv8 References Category:Computer science